package cn.iocoder.yudao.module.biobee.dal.mysql.tasklist;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.biobee.dal.dataobject.tasklist.TaskListDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.biobee.controller.admin.tasklist.vo.*;

/**
 * 任务列 Mapper
 *
 * @author 梁兵
 */
@Mapper
public interface TaskListMapper extends BaseMapperX<TaskListDO> {

    default PageResult<TaskListDO> selectPage(TaskListPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<TaskListDO>()
                .eqIfPresent(TaskListDO::getProjectId, reqVO.getProjectId())
                .eqIfPresent(TaskListDO::getTaskId, reqVO.getTaskId())
                .likeIfPresent(TaskListDO::getProjectName, reqVO.getProjectName())
                .likeIfPresent(TaskListDO::getProjectType, reqVO.getProjectType())
                .likeIfPresent(TaskListDO::getProjectTypeName, reqVO.getProjectTypeName())
                .likeIfPresent(TaskListDO::getTaskName, reqVO.getTaskName())
                .likeIfPresent(TaskListDO::getTaskType, reqVO.getTaskType())
                .likeIfPresent(TaskListDO::getTaskTypeName, reqVO.getTaskTypeName())
                .betweenIfPresent(TaskListDO::getCreateTime, reqVO.getCreateTime())
                .betweenIfPresent(TaskListDO::getUpdateTime, reqVO.getUpdateTime())
                .orderByDesc(TaskListDO::getId));
    }

}